#include "ThreadMod.hpp"
#include <vector>

using namespace ThreadMod;
int main()
{
    // std::vector<Thread> threads;
    // for(int i=0;i<10;i++)
    // {
    //     threads.emplace_back(
    //         [](){
    //         while(true)
    //         {
    //             char id[128];
    //             //用于调试，id会被写入线程的名字，原理是写入线程局部存储
    //             pthread_getname_np(pthread_self(),id,sizeof(id));
    //             std::cout << "我是一个新线程" << id << std::endl;
    //             sleep(1);
    //         }
    //     });
    // }
    std::vector<Thread> threads;
    for (int i = 0; i < 10; i++)
    {
        threads.emplace_back([](){
            while(true)
            {
                char name[64];
                pthread_getname_np(pthread_self(), name, sizeof(name));
                std::cout << "我是一个新线程: " << name << std::endl; // 我的线程的名字是什么呀？debug
                sleep(1);
            } 
        });
    }
    for(auto& th : threads)
    {
        th.start();
    }
    for(auto& th : threads)
    {
        th.join();
    }
    // Thread t([](){
    //     while(true)
    //     {
    //         char id[64];
    //         //用于调试，id会被写入线程的名字，原理是写入线程局部存储
    //         pthread_getname_np(pthread_self(),id,sizeof(id));
    //         std::cout << "我是一个新线程" << id << std::endl;
    //         sleep(1);
    //     }
    // });
    // // t.setRunning();
    // // t.Detach();
    // t.start();
    // sleep(5);
    // t.stop();
    // sleep(5);
    
    // // t.stop();
    // t.join();
    return 0;
}